/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef StreambusModel_h
#define StreambusModel_h

@interface Target :NSObject

/// 需要归档的目的地
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 当达到这个数据量时开始归档
@property (strong,nonatomic,nonnull)  NSNumber*  recordSize;

/// 进行归档任务的时间周期
@property (strong,nonatomic,nonnull)  NSNumber*  cycle;


-(id) initWithName:(NSString*) name
    recordSize:(NSNumber*)recordSize
    cycle:(NSNumber*)cycle;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ConsumerGroup :NSObject

/// Id
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// CreatedTime
@property (strong,nonatomic,nonnull)  NSString*  createdTime;

/// Delete
@property (strong,nonatomic,nonnull)  NSString*  delete;

/// TopicId
@property (strong,nonatomic,nonnull)  NSNumber*  topicId;


-(id) initWithId:(NSNumber*) idValue
    name:(NSString*)name
    createdTime:(NSString*)createdTime
    delete:(NSString*)delete
    topicId:(NSNumber*)topicId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Topic :NSObject

/// 主题id
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// 是否归档（0：未归档，1：已归档）
@property (strong,nonatomic,nonnull)  NSNumber*  archived;

/// 数据写入后的保留时间
@property (strong,nonatomic,nonnull)  NSNumber*  lifecycle;

/// 分区
@property (strong,nonatomic,nonnull)  NSNumber*  partitionNum;

/// 流数据总线中topic的名字
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 流数据总线shard的数量
@property (strong,nonatomic,nonnull)  NSNumber*  shardNum;

/// 备注
@property (strong,nonatomic,nonnull)  NSString*  remark;


-(id) initWithId:(NSNumber*) idValue
    archived:(NSNumber*)archived
    lifecycle:(NSNumber*)lifecycle
    partitionNum:(NSNumber*)partitionNum
    name:(NSString*)name
    shardNum:(NSNumber*)shardNum
    remark:(NSString*)remark;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TopicListInfo :NSObject

/// 是否归档（0：未归档，1：已归档）
@property (strong,nonatomic,nonnull)  NSNumber*  archived;

/// 创建topic的时间戳
@property (strong,nonatomic,nonnull)  NSString*  createdTime;

/// topic是否已删除（0：未删除，1：删除）
@property (strong,nonatomic,nonnull)  NSNumber*  deleted;

/// topic的id值
@property (strong,nonatomic,nonnull)  NSNumber*  idValue;

/// 数据写入后的保留时间
@property (strong,nonatomic,nonnull)  NSNumber*  lifecycle;

/// 流数据总线中topic的名字
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 对应kafka中的分区数
@property (strong,nonatomic,nonnull)  NSString*  partitionNum;

/// 备注
@property (strong,nonatomic,nonnull)  NSString*  remark;

/// 流数据总线shard的数量
@property (strong,nonatomic,nonnull)  NSString*  shardNum;

/// 0: 已创建, 1: 创建中
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 对应kafka中的topic名字
@property (strong,nonatomic,nonnull)  NSString*  topicName;

/// 对应kafka中的uid
@property (strong,nonatomic,nonnull)  NSString*  uid;

/// 更新topic的时间戳
@property (strong,nonatomic,nonnull)  NSString*  updatedTime;

/// 用户的userPin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// DataSize
@property (strong,nonatomic,nonnull)  NSString*  dataSize;


-(id) initWithArchived:(NSNumber*) archived
    createdTime:(NSString*)createdTime
    deleted:(NSNumber*)deleted
    idValue:(NSNumber*)idValue
    lifecycle:(NSNumber*)lifecycle
    name:(NSString*)name
    partitionNum:(NSString*)partitionNum
    remark:(NSString*)remark
    shardNum:(NSString*)shardNum
    status:(NSNumber*)status
    topicName:(NSString*)topicName
    uid:(NSString*)uid
    updatedTime:(NSString*)updatedTime
    userPin:(NSString*)userPin
    dataSize:(NSString*)dataSize;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ParameterList :NSObject

/// PKey
@property (strong,nonatomic,nonnull)  NSString*  pKey;

/// PValue
@property (strong,nonatomic,nonnull)  NSString*  pValue;


-(id) initWithPKey:(NSString*) pKey
    pValue:(NSString*)pValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TopicModel :NSObject

/// Topic
@property (strong,nonatomic,nonnull)  Topic*  topic;

/// Target
@property (strong,nonatomic,nonnull)  Target*  target;

/// 归档相关的具体参数，需要对归档进行新建，更新，删除，修改对应参数值即可。&lt;br&gt;ossFlag，bucketName，directory，objectName 这四个参数值与ossFlag有关，若ossFlag为false，后面三个可为空，若为true，后面三个为异常数据保存位置，按需要填写即可。&lt;br&gt; 1）如果归档到数据计算服务需要传database，table，type，example，delimiter，targetColumn，analysisColumn，partsTargetColumn，partsAnalysisColumn。&lt;br&gt;2）如果归档到JFS需要传bucket，prefix，infix。&lt;br&gt;3）如果归档到京东云 Elasticsearch需要传host，port，indexType，idType，indexName，indexReferField，timestampFieldFormat，timestampIndexFormat，typeName，idReferField，noResolve，username，password。&lt;br&gt; 4）如果归档到mysql，则需要传host，database，table，username，password，type，example，delimiter。 &lt;br&gt;5)如果要归档到京东云数据库则需要传rdsId，database，table，username，password，type，example，delimiter。
@property (strong,nonatomic,nonnull)  NSArray<ParameterList*>*  parameterList;


-(id) initWithTopic:(Topic*) topic
    target:(Target*)target
    parameterList:(NSArray<ParameterList*>*)parameterList;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* StreambusModel_h */
